package com_djm_2025_05_16;

/**
 * 只出现一次的数字
 *
 * @author dengjiangming
 * @version 1.0.0
 * @date 2025-05-17
 */
public class SingleNumberFinder {

    /*
    给定一个非空整数数组，除了某个元素只出现一次以外，其余每个元素均出现两次。找出那个只出现了一次的元素。
     */

    //思路：利用异或操作符的性质：
    // n ^ n = 0
    //0 ^ n = n

    //数组中除了一个元素只出现一次之外，其余每个元素均出现两次。所以出现两次的元素异或结果为0.
    //而0和只出现一次的元素进行异或结果为只出现一次的元素。

    //遍历整个数组，从头异或到尾，即可得到最后的结果
    public static void main(String[] args) {
        int result = 0;
        int []arr = new int[]{4,1,2,1,2};

        for (int num : arr) {
            result = result^num;
        }

        System.out.println(result);
    }

}
